package UnitTest;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;

/**
 * @Auther: Administrator
 * @Date: 2019/10/8/008 22 13
 * @Description:
 */
public class SnapshotArray {

    private static Integer snapId = 0;

    private static List<TreeMap<Integer,Integer>> map;

    public static void main(String[] args) {
        SnapshotArray snapshotArray = new SnapshotArray(3);
        snapshotArray.set(0,2);
        snapshotArray.snap();
        snapshotArray.set(2,3);
        snapshotArray.snap();
        snapshotArray.set(1,2);
        System.out.println(snapshotArray);
    }


    public SnapshotArray(int lenght) {
        map = new ArrayList<>();
        for (int i = 0; i < lenght; i++) {
            map.add(new TreeMap<>());
            map.get(i).put(0,0);
        }
    }

    public void set(int index,int val){
        map.get(index).put(snapId,val);
    }

    public int get(int snapId,int index){
        return map.get(index).floorEntry(snapId).getValue();
    }

    public int snap(){
       return snapId++;
    }
}
